//package com.lsp.microorder.recharge.config;
//
//import org.springframework.amqp.core.Binding;
//import org.springframework.amqp.core.BindingBuilder;
//import org.springframework.amqp.core.DirectExchange;
//import org.springframework.amqp.core.Queue;
//import org.springframework.context.annotation.Bean;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 死信队列等相关的配置
// */
////@Configuration
//public class DlxConfig {
//
//    // 普通的订单队列
//    @Bean
//    public Queue orderQueue() {
//        Map<String, Object> args = new HashMap<>(2);
//        // 绑定死信交换机
//        args.put("x-dead-letter-exchange", "order_dlx_ex");
//        // 绑定死信队列路由key
//        args.put("x-dead-letter-routing-key", "order_dlx_key");
//        // durable 是否进行持久化存储
//        // exclusive 独占的,如果我们正在声明一个独占队列，则为 true（该队列将仅由声明者的连接使用）
//        // autoDelete 如果服务器应在队列不再使用时将其删除，则为 true
//        return new Queue("order_queue", true, false, false, args);
//    }
//
//    // 普通订单交换机
//    @Bean
//    public DirectExchange orderExchange() {
//        return new DirectExchange("order_ex");
//    }
//
//    // 针对普通订单队列和交换机的绑定
//    @Bean
//    public Binding orderBinding() {
//        return BindingBuilder.bind(orderQueue()).to(orderExchange()).with("order_key");
//    }
//
//    // 死信队列
//    @Bean
//    public Queue dlxQueue() {
//        return new Queue("order_dlx_queue");
//    }
//
//    // 死信交换机
//    @Bean
//    public DirectExchange dlxExchange() {
//        return new DirectExchange("order_dlx_ex");
//    }
//
//    // 死信队列和死信交换机绑定
//    @Bean
//    public Binding dlxBinding() {
//        return BindingBuilder.bind(dlxQueue()).to(dlxExchange()).with("order_dlx_key");
//    }
//}